package com.blog.cmrpersonalblog.dto.announcement.request;

import com.blog.cmrpersonalblog.common.BasePageRequest;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 用户消息中心公告查询请求DTO
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserAnnouncementMessageQueryRequest extends BasePageRequest {

    /**
     * 公告类型 1-系统公告 2-活动公告 3-维护公告 4-其他
     */
    @Min(value = 1, message = "公告类型最小值为1")
    @Max(value = 4, message = "公告类型最大值为4")
    private Integer type;

    /**
     * 公告级别 1-普通 2-重要 3-紧急
     */
    @Min(value = 1, message = "公告级别最小值为1")
    @Max(value = 3, message = "公告级别最大值为3")
    private Integer level;

    /**
     * 阅读状态 null-全部 0-未读 1-已读 2-已忽略
     */
    @Min(value = 0, message = "阅读状态最小值为0")
    @Max(value = 2, message = "阅读状态最大值为2")
    private Integer readStatus;

    /**
     * 是否只查询未读 true-只查询未读 false-查询全部
     */
    private Boolean onlyUnread;

    /**
     * 是否只查询已读 true-只查询已读 false-查询全部
     */
    private Boolean onlyRead;

    /**
     * 是否只查询已忽略 true-只查询已忽略 false-查询全部
     */
    private Boolean onlyIgnored;
}

